/**
 * Raw 数据类型
 */
#pragma once

#include "EventType.h"

/* 原始数据块对象 */
typedef struct _EventRaw EventRaw;
#define EVENT_RAW(any) ((EventRaw *)any)

/**
 * 创建一个 size 大小的 EventRaw 对象
 * @param size : 大小/长度
 */
extern EventRaw *event_raw_new(euint32 size);

/**
 * 从 raw 字节流，再根据大小 size 创建一个空白的 EventRaw 对象
 * @param size : 大小
 * @param raw : 字节流大小
 */
extern EventRaw *event_raw_new_with_stream(euint32 size, epointer raw);
extern euint32	 event_raw_get_size(EventRaw *self);
extern epointer	 event_raw_get_data(EventRaw *self);

/**
 * 向 EventRaw 对象中增加 size 大小的二进制数据
 */
extern void event_raw_add_data(EventRaw *self, euint32 size,
			       epointer raw_steam);
